/* 
 * File:   main.c
 * Author: isen
 *
 * Created on 8 janvier 2014, 12:39
 */

#include <stdio.h>
#include <stdlib.h>

void lancerDe(int de, int Max, int Min)//fonction donnant un nombre aléatoire entre 1 et 6
{
    Max = 6;
    Min = 1;
    de=(rand()%(Max - Min + 1)) + Min; 
}
 
void positionJoueur (int *position, int de) //calcule la case sur laquelle se trouve le joueur
{
     *position = *position + de;
     int nbrcase;
     if (*position > 60)// gère le dépassement de la dernière case (case 60)
     {
        nbrcase = *position - 60;
        *position = 60 - nbrcase;
     }
     if (*position == 37)// les 4 prochains if codent les serpents 
     {
        printf ("Dommage ! Retour a la case 2 \n");
        *position = 2;
     }
     if (*position == 59)
     {
        printf ("Dommage ! Retour a la case 43 \n");
        *position = 43;
     }
     if (*position == 45)
     {
        printf ("Dommage ! Retour a la case 15 \n");
        *position = 15;
     }
     if (*position == 28)
     {
        printf ("Dommage ! Retour a la case 7 \n");
        *position = 7;
     }
     
     
     if (*position == 22)// les 4 prochains if codent les échelles 
     {
        printf ("Bien joue ! Avance a la case 38 \n");
        *position = 38;
     }
     if (*position == 4)
     {
        printf ("Bien joue ! Avance a la case 25 \n");
        *position = 25;
     }
     if (*position == 29)
     {
        printf ("Bien joue ! Avance a la case 46 \n");
        *position = 46;
     }
     if (*position == 35)
     {
        printf ("Bien joue ! Avance a la case 52 \n");
        *position = 52;
     }
}
 
void gagne (int position1, int position2, int position3, int position4)// conditions de victoire
{
     if (position1 == 60)
     {
        printf ("Joueur 1 a gagne\n\n");
     }
     else 
         printf("Les autres joueurs ont perdus");
     if (position3 == 60)
     {
         printf("Joueur 3 a gagne\n\n");
     }
     else
         printf("Les autres joueurs ont perdus");
     if (position4 == 60)
     {
         printf("Joueur 4 a gagne\n\n");
     }
     if (position2 == 60)
     {
         printf ("joueur 2 a gagne\n\n");
     }
     else
         printf("Les autres joueurs ont perdus");
}
 
int main ()
{
    int posj1 = 1, posj2 = 1, posj3 = 1, posj4 = 1, Max = 6, Min = 1, de;
    srand(time(NULL));
    do
    {
        printf ("joueur 1 : ");// tour du joueur 1
        lancerDe (de, Max, Min);
        positionJoueur (&posj1, de);// position du joueur 1
        printf ("case %i\n", posj1);
 
        printf ("joueur 2 : ");// tour du joueur 2
        lancerDe (de, Max, Min);
        positionJoueur (&posj2, de);// position du joueur 2
        printf ("case %i\n\n", posj2);
        
        printf ("joueur 3 : ");// tour du joueur 3
        lancerDe (de, Max, Min);
        positionJoueur (&posj3, de);// position du joueur 3
        printf ("case %i\n\n", posj3);
        
        printf("joueur 4 : ");// tour joueur 4
        lancerDe (de, Max, Min);
        positionJoueur (&posj4, de);// position joueur 4
        printf ("case %i\n\n", posj4);
    }while (posj1 != 60 && posj2 != 60 && posj3 != 60 && posj4 != 60);
    gagne (posj1, posj2, posj3, posj4);
     
    system ("PAUSE");
    return 0;
}

